/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package test.net.sourceforge.pmd.cpd; import junit.framework.TestCase; import net.sourceforge.pmd.PMD; import net.sourceforge.pmd.cpd.JavaTokenizer; import net.sourceforge.pmd.cpd.SourceCode; import net.sourceforge.pmd.cpd.Tokenizer; import net.sourceforge.pmd.cpd.Tokens; import java.io.StringReader; public class JavaTokensTokenizerTest extends TestCase { public void test1() throws Throwable { Tokenizer tokenizer = new JavaTokenizer(); SourceCode sourceCode = new SourceCode("1"); String data = "public class Foo {}"; Tokens tokens = new Tokens(); sourceCode.readSource(new StringReader(data)); tokenizer.tokenize(sourceCode, tokens); assertEquals(6, tokens.size()); assertEquals("public class Foo {}", sourceCode.getSlice(1, 1)); } public void test2() throws Throwable { Tokenizer t = new JavaTokenizer(); SourceCode sourceCode = new SourceCode("1"); String data = "public class Foo {" + PMD.EOL + "public void bar() {}" + PMD.EOL + "public void buz() {}" + PMD.EOL + "}"; Tokens tokens = new Tokens(); sourceCode.readSource(new StringReader(data)); t.tokenize(sourceCode, tokens); assertEquals("public class Foo {" + PMD.EOL + "public void bar() {}", sourceCode.getSlice(1,2)); } public void testDiscardSemicolons() throws Throwable { Tokenizer t = new JavaTokenizer(); SourceCode sourceCode = new SourceCode("1"); String data = "public class Foo {private int x;}"; Tokens tokens = new Tokens(); sourceCode.readSource(new StringReader(data)); t.tokenize(sourceCode, tokens); assertEquals(9, tokens.size()); } public void testDiscardImports() throws Throwable { Tokenizer t = new JavaTokenizer(); SourceCode sourceCode = new SourceCode("1"); String data = "import java.io.File;" + PMD.EOL + "public class Foo {}"; Tokens tokens = new Tokens(); sourceCode.readSource(new StringReader(data)); t.tokenize(sourceCode, tokens); assertEquals(6, tokens.size()); } public void testDiscardPkgStmts() throws Throwable { Tokenizer t = new JavaTokenizer(); SourceCode sourceCode = new SourceCode("1"); String data = "package foo.bar.baz;" + PMD.EOL + "public class Foo {}"; Tokens tokens = new Tokens(); sourceCode.readSource(new StringReader(data)); t.tokenize(sourceCode, tokens); assertEquals(6, tokens.size()); } }